{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Visualization of Learning"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# high-dimensional reacher\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def smooth(y, radius=10, mode='two_sided'):\n",
    "    if len(y) < 2*radius+1:\n",
    "        return np.ones_like(y) * y.mean()\n",
    "    elif mode == 'two_sided':\n",
    "        convkernel = np.ones(2 * radius+1)\n",
    "        return np.convolve(y, convkernel, mode='same') / \\\n",
    "               np.convolve(np.ones_like(y), convkernel, mode='same')\n",
    "    elif mode == 'causal':\n",
    "        convkernel = np.ones(radius)\n",
    "        out = np.convolve(y, convkernel,mode='full') / \\\n",
    "              np.convolve(np.ones_like(y), convkernel, mode='full')\n",
    "        return out[:-radius+1]\n",
    "\n",
    "\n",
    "def plot(x, data, color, label):\n",
    "    y_m=np.mean(data, axis=0)\n",
    "    y_std=np.std(data, axis=0)\n",
    "    y_upper=y_m+y_std\n",
    "    y_lower=y_m-y_std\n",
    "    plt.fill_between(\n",
    "    x, list(y_lower), list(y_upper), interpolate=True, facecolor=color, linewidth=0.0, alpha=0.3\n",
    ")\n",
    "    plt.plot(x, list(y_m), color=color, label=label)\n",
    "    \n",
    "plt.figure(figsize=(8,6))\n",
    "file_pre = './'\n",
    "y=np.load(file_pre+'rewards_lstm.npy')\n",
    "y_=np.load(file_pre+'rewards.npy')\n",
    "\n",
    "x=np.arange(len(y))\n",
    "x_=np.arange(len(y_))\n",
    "episode_length = 150\n",
    "x = episode_length*x\n",
    "x_ = episode_length*x_\n",
    "plt.plot(x, smooth(y), label = 'SAC_LSTM', color='b')\n",
    "plt.plot(x_, smooth(y_), label = 'SAC', color='r')\n",
    "\n",
    "plt.xlabel('Samples')\n",
    "plt.ylabel('Reward')\n",
    "# plt.ylim(0)\n",
    "leg= plt.legend( loc=2)\n",
    "plt.grid()\n",
    "plt.savefig('reward_compare_sac.pdf')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "980\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfoAAAF3CAYAAABNO4lPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xd4FNXXwPHvhYRepQSkKyC9IxY6IgIWVOQnKhZELNhALFjBLijqi4oVUVSwACIWikDoRTooRTpBaqgBQknu+8fJMJu+SXazhfN5njxTdnb2TihnbzvXWGtRSimlVHjKE+gCKKWUUsp/NNArpZRSYUwDvVJKKRXGNNArpZRSYUwDvVJKKRXGNNArpZRSYUwDvVJKKRXGNNArpZRSYUwDvVJKKRXGNNArpZRSYSwi0AXwhdKlS9uqVav69J7Hjx+ncOHCPr1nsNBnC03h/GwQ3s+nzxa6gvn5li1bdsBaWyaz68Ii0FetWpWlS5f69J7R0dG0bdvWp/cMFvpsoSmcnw3C+/n02UJXMD+fMWa7N9dp071SSikVxjTQK6WUUmFMA71SSikVxsKijz4tZ86cISYmhvj4+Gy9v3jx4qxbt87HpQoOOX22AgUKULFiRSIjI31YKqWUUv4QtoE+JiaGokWLUrVqVYwxWX7/sWPHKFq0qB9KFng5eTZrLbGxscTExFCtWjUfl0wppZSvhW3TfXx8PKVKlcpWkFfpM8ZQqlSpbLeUKKWUyl1hG+gBDfJ+or9XpZQKHWEd6JVSSqnznQZ6P4mNjaVRo0Y0atSIcuXKUaFChXPHxhgaNWpE3bp1adiwIcOHDycxMRGAJUuWnLuuYcOGTJw4McPPKVKkSKpzGzZsoG3btjRq1IjatWvTt29fpk6deu6+5cuX55JLLqFRo0bceeedREdHY4zhiy++OHePFStWYIzh7bff9u0vRimlVK4K28F4gVaqVClWrlwJwODBgylSpAgDBw4EJDg7r+3bt4/bbruNI0eOMGTIEOrVq8fSpUuJiIhg9+7dNGzYkOuuu46ICO//qB599FH69+/PDTfcAMCaNWuoX78+nTp1AqBVq1a8++67NGvWDJDMT/Xr1+f777/n3nvvBWDcuHE0bNjQN78MpZRSAXNeBPrHH4ekuOq1hISC5M2b/uuNGsF77+WsXABly5bl008/pXnz5gwePJhChQqdey0+Pj5b/eG7d++mYsWK547r16+f6XsqV67M0aNH2bt3L2XLlmXKlCl06dIly5+tlFIquGjTfRC46KKLSExMZN++fQAsXryYunXrUr9+fT7++OMs1eYB+vfvT/v27encuTPvvvsuhw8f9up93bt358cff2TBggU0adKE/PnzZ/lZlFJKJbd7N+zZE7jPPy9q9NmpeR87djJX59Fba8/tt2jRgr///pt169Zx11130blzZwoUKOD1ve655x46derElClTmDRpEp988gmrVq3KNHD36NGD//3vf6xfv56ePXuyYMGCbD+PUkop+Owz6NsXLrkE/vkH8gSgeq01+iCwZcsW8ubNS9myZZOdr127NoULF2bt2rVZvueFF15I7969mTRpEhEREV7do1y5ckRGRjJ9+nQ6dOiQ5c9USikF1sLQofD00xLkATZsgEDVnc6LGn0w279/Pw888AAPP/wwxhi2bt1KpUqViIiIYPv27WzYsIGqVatm6Z5TpkyhQ4cOREZGsmfPHmJjY6lQoYJX73355ZfZt28feTMaoKCUUuoca+GFF2D7dihXDrZuhfHj3dc/+wwuvRQaNAhM+TTQB8DJkydp1KgRZ86cISIigl69ejFgwAAA5s2bx5tvvklkZCR58uTho48+onTp0une68SJE8kG3g0YMICYmBgee+yxc839w4YNo1y5cl6V7YorrsjBkyml1Pnnzz/htdeSnyteHKZMgU8/hV69IJBDnjTQ54LBgwcnO05ISEj32l69etGrVy+v7+3Mv09p+PDh6b7n999/Tzb+oG3btrRt2zbVdSnLrZRSKjXnv9tKlWDnTtmPjpbZWZddFrBinaN99EoppVQ2/fGH1NzfeQe2bIFnn5Vg36hRoEvm0hp9CIiNjU1zcNyMGTMoVapUAEqklFLqo49gwACoXh0efhgiIlI34QcDDfQhwDPLnlJKqcBbvRr69YPGjeGbbyBfvkCXKH0a6JVSSqks+uMP2f76K1x4YWDLkhnto1dKKaWyaOpUmS4X7EEeNNArpZRSWbJwoYyqT1o3LOhpoPeT3FqmVimlVO757z+47jqoWlUG4oUC7aP3k0AuU6uUUso/3n0Xjh6F+fOhRIlAl8Y7uVKjN8aMMsbsM8as9Th3gTFmujHm36RtyaTzxhjzf8aYTcaY1caYJrlR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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# high-dimensional reacher\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def smooth(y, radius=10, mode='two_sided'):\n",
    "    if len(y) < 2*radius+1:\n",
    "        return np.ones_like(y) * y.mean()\n",
    "    elif mode == 'two_sided':\n",
    "        convkernel = np.ones(2 * radius+1)\n",
    "        return np.convolve(y, convkernel, mode='same') / \\\n",
    "               np.convolve(np.ones_like(y), convkernel, mode='same')\n",
    "    elif mode == 'causal':\n",
    "        convkernel = np.ones(radius)\n",
    "        out = np.convolve(y, convkernel,mode='full') / \\\n",
    "              np.convolve(np.ones_like(y), convkernel, mode='full')\n",
    "        return out[:-radius+1]\n",
    "\n",
    "\n",
    "def plot(x, data, color, label):\n",
    "    y_m=np.mean(data, axis=0)\n",
    "    y_std=np.std(data, axis=0)\n",
    "    y_upper=y_m+y_std\n",
    "    y_lower=y_m-y_std\n",
    "    plt.fill_between(\n",
    "    x, list(y_lower), list(y_upper), interpolate=True, facecolor=color, linewidth=0.0, alpha=0.3\n",
    ")\n",
    "    plt.plot(x, list(y_m), color=color, label=label)\n",
    "    \n",
    "plt.figure(figsize=(8,6))\n",
    "file_pre = './'\n",
    "y=np.load(file_pre+'rewards_td3_lstm.npy')\n",
    "y_=np.load(file_pre+'rewards_td3.npy')\n",
    "\n",
    "x=np.arange(len(y))\n",
    "x_=np.arange(len(y_))\n",
    "print(len(y_))\n",
    "episode_length = 150\n",
    "x = episode_length*x\n",
    "x_ = episode_length*x_\n",
    "plt.plot(x, smooth(y), label = 'TD3_LSTM', color='b')\n",
    "plt.plot(x_, smooth(y_), label = 'TD3', color='r')\n",
    "\n",
    "plt.xlabel('Samples')\n",
    "plt.ylabel('Reward')\n",
    "# plt.ylim(0)\n",
    "leg= plt.legend( loc=2)\n",
    "plt.grid()\n",
    "plt.savefig('reward_compare_td3.pdf')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
